<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
   输入要计算的值： <input id="num" /> <button id="btn">点击我计算阶乘</button>
    <script>
        /*
        - 编写一个函数，输入n为偶数时，调用函数求1/2+1/4+...+1/n,当输入n为奇数时，调用函数求/1+1/3+...+1/n
        - 使用函数完成任意数字阶乘的计算
          要求：页面输入任意数字，点击按钮后计算阶乘
        */

        // function  add(n) {
        //     // var res  = 0  //注意：不能只累加一个结果
        //     // 1/1 + 1/2 +1/3+1/4.....
        //     // 偶数的累加结果初始值
        //     var OddRes = 0;
        //      // 奇数的累加结果初始值
        //     var evenRes = 0
        //     for(var i=1;i<=n;i++){
        //         // 判断奇偶
        //         if(i%2===0){
        //             OddRes += 1/i ;
        //         }else{
        //             evenRes += 1/i;
        //         }
        //     }
        //     if(n%2==0){
        //         return OddRes;
        //     }else{
        //         return evenRes;
        //     }
        // }

        // var res =  add(3);
        // console.log(res);

        // 同学方法：
        // function fn(n) {
        //     var sum = 0;
        //     for (var i = (n % 2 === 0 ? 2 : 1); i <= n; i += 2) {
        //         sum += 1 / i;
        //     }
        //     return sum;
        // }
        // console.log(fn(10));


        // 第二题
        // 第一步 ：实现阶乘逻辑
        // var a = 5;
        // var num = 1; //阶乘的值
        // for(var i=1;i<=a;i++){
        //     num *= i;
        // }
        // console.log(num);
        // 第二步：封装函数
        // function fn() {
        //     var a = 5;
        //     var num = 1; //阶乘的值
        //     for (var i = 1; i <= a; i++) {
        //         num *= i;
        //     }
        //     console.log(num);
        // }
        // fn()
        // 第三步：替换变量
        function fn(a) {
            // var a = 5;
            var num = 1; //阶乘的值
            for (var i = 1; i <= a; i++) {
                num *= i;
            }
            console.log(num);
            // document.write(num);
            return num;
        }
        // fn(6)
        // 第四步：考虑获取值和点击呈现问题
        btn.onclick = function () {
            // 获取输入的值 通过 id.value
            // id 等同于 doucument.getEelementById("id")
            // id.value  等同于 doucument.getEelementById("id").value;
            // console.log(num);
            // console.log(document.getElementById("num"));
            // 获取input框里的值
            // 注意：通过input获取的值是字符串，我们的fn函数需要传入的值是number
            var val = parseInt( num.value);
            var res  =  fn(val);
            document.write(res);
        }
        /*
        1.作用域
        2.递归（了解）
        3.简单认识对象
        */

    </script>
</body>

</html>